In a mark-and-sweep method, one of the conventional garbage collection methods, garbage collection is achieved by performing together a mark phase and a sweep phase. On the other hand, in a partial garbage collection process, only some objects are examined and collected.
A smart card, a medium used for a user-interactive communication, can hardly be used for long data processing. Thus, in a command/response communication environment, a response time can be delayed due to a process such as the garbage collection, a processing time of which is not specially assigned. Therefore, when the garbage collection is performed, it must be considered that a user can feel a response delay and timeout can occur due to the response delay.
Also, for improving processing efficiency, most smart cards have a single thread operation structure using a one-chip processor, and only one application program is active when the user-interactive communication is performed. Therefore, the smart cards cannot have a separate process for managing the garbage collection, and also few application programs can be activated so that the partial garbage collection for a portion of an object can be efficiently performed. Furthermore, there are not sufficient resources with which the full/partial garbage collection can be always managed.
Accordingly, the garbage collection is requested when necessary, and a predetermined process is performed only during its activated period of time. In the garbage collection intermittently performed by being passively activated, processing time is influenced by both how much garbage must be collected and the length of the period of time required for examining whether an object is garbage. The former is determined according to a kind of memory in which an object management table and objects to be collected are mainly placed, and in a memory requiring a long processing time in a write operation, a processing time depends on the amount of processed data. The latter usually depends on the number of objects to be examined.